package MID_Day01._01;

public class Sre03 {
    // rpm包概述
    /**
     * 由红帽 一般适用于红帽 Rocky Linux SUSE 等系列的操作系统
     * Linux软件包的构成:
     * 主版本 此版本 修订号
     * 安装命令:
     *  rpm -ivh xxx.rpm
     * 问题: 无法直接安装该应用包含的依赖文件数据 需自行查询下载
     *      rpm仅能做到提醒用户需要解决一级依赖关系问题 且不会帮助处理
     * 解决: YUM仓库
     */
    // YUM仓库简介
    /**
     * YUM仓库: 软件包仓库
     * 包含: 1.众多软件
     *      2.仓库清单
     *      只要拥有上述两部分 即可创建YUM仓库
     * 特点: 1.跨主机(多主机通讯)
     * YUM软件包管理: 为客户端自动检查依赖关系并自动解决依赖关系 即安装缺失的软件包
     * 访问YUM仓库服务端的协议:
     *  1.跨主机:
     *    https://...
     *    ftp://...
     *  2.本地:
     *    file://... -> 将本地主机变为YUM仓库 使用本地软件包满足本地主机的需求
     * 客户端配置文件要求:
     *  1.客户端文件必须以.repo结尾
     *  2.客户端文件必须放在/etc/yum.repos.d/目录下
     *    且/etc/yum.repos.d/路径下的文件必须同时可用
     */
    // 如何呈现光盘中的数据
    /**
     * 通过挂载的方法 加载到一个目录中
     * /etc/fstab: 记录挂载信息的文件
     */
    /*
    设备路径 挂载点 文件系统 挂载选项 挂载优先级

    mount -a 挂载所有挂载点,类似于手动刷新配置信息
     */
    // 进程管理
    /**
     * 概述1:
     *  进程占用的是cup 程序占用的是磁盘
     *  程序启动后会开启进程
     *  进程用于处理客户需求 运行程序的
     *  进程为树状结构:
     *      上帝进程(systemd): 程序运行时开启的进程 该进程用于后续启动其他一级进程及后续进程 TODO
     *      命令: systemctl(人类与上帝之间的交流方式)
     *          systemctl start [启动] 服务名
     *          systemctl stop [停止] 服务名
     *          systemctl status [状态] 服务名
     *          systemctl restart [重启(若该服务已停止 则该命令等价于正常唤醒启动 若该服务已启动 则该服务会被关闭后重新启动)] 服务名
     *          systemctl enable [启用/开机自启] 服务名
     *          systemctl disable [禁用/禁用开机自启] 服务名
     *          systemctl is-enabled [查看是否开机自启] 服务名
     *      僵尸进程: TODO
     *      孤儿进程: 父进程结束 子进程继续运行 TODO
     *      守护进程: a running TODO
     *      非守护进程: TODO
     * 概述2:
     *  程序: 存放在磁盘中的静态代码
     *  进程: 活跃在内存和CPU中的动态指令
     *  父/子进程: 父进程可以创建一个或多个子进程
     *
     * 查看进程树:
     * 进程的唯一标识: pid
     * 格式
     * pstree [选项] 用户名
     *  选项:
     *  -p 进程树信息
     *  -u 进程用户的PID
     *  -a 进程状态/完整指令
     */
    /*
    "while :" - 死循环表达方式
    "sleep 数字" 单位为秒 - 此命令表示延迟执行
    在命令后添加 "&" - 表示后台运行
    查看后台进程: jobs -l
    将进程挂入后台快捷键: ctrl z
     */
    // 查杀进程
    /**
     * 方法:
     * ctrl C 结束前台正在运行的进程
     * kill:
     *  1) kill [选项] pid
     *      选项:
     *       -9 强制杀死进程
     *  2) kill [选项] 进程名
     *  3) killall [选项] 进程名 - 将所有进程名与该进程名参数相同的进程全部杀死
     *  4) pkill [选项] pid - 盲杀 模糊匹配进程名进行查杀
     *      选项:
     *       -9 强制杀死进程
     */
    /*`````````````````````````````````````````````````2024年6月28日`````````````````````````````````````````````````*/
    // 网络唯一标识一台主机: IP地址
    // 服务的唯一标识: 端口号
    /* 80-http 443-https 22-ssh 3306-mySQL */
    // 如何查看端口号 - ss命令
    /**
     * 各个命令的历史进程
     * yum -> dnf
     * netstat -> ss
     */
    // 监听: 监视进程端口号 - 等待被访问
    /**
     * 监听: listen [选项] 端口号
     *  0.0.0.0 : 22 表示监听所有IP地址的22端口
     * 命令: ss -nutlp [选项]
     *  选项:
     *      -n：以数字的形式显示
     *      -t：查看使用tcp协议的信息
     *      -u：查看使用udp协议的信息
     *      -l：查看listen监听状态的信息学
     *      -p：查看进程名
     *  例如: ss -nutlp | grep 22
     * 输入该命令过后
     * Netid  State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
     * Netid: 表示网络协议
     * State: 表示连接状态
     * Recv-Q: 表示接收队列中数据包数量
     * Send-Q: 表示发送队列中数据包数量
     * Local Address:Port: 本地IP地址:端口号
     * Peer Address:Port: 远程IP地址:端口号
     * Process: 进程名
     */
    // 模板机
    /**
     * 步骤:
     * 1.firewalld
     * 2.SELinux
     * 3.yum
     */
    /* vim小贴士: 将光标定位至想要删除的位置 输入大写C(shift C) 此刻会删除光标处及光标后的内容 且进入插入模式 */
    // NGINX简介
    /**
     * engine x: 俄罗斯人编写的轻量级HTTP服务器(翻译为引擎x)
     * 轻量级: 同等配置 性能更好
     * 概述:
     * Nginx默认配置文件：/etc/nginx/nginx.conf
     * Nginx调用配置文件：/etc/nginx/conf.d/*.conf
     * Nginx默认使用端口：80
     */
    // 实验架构
    /**
     * B/S架构 Browser/Server: 浏览器/服务器
     * 浏览器: 访问服务器的资源
     * 服务器: 响应浏览器的请求
     */
}
